# Scripting命令
# EVAL
# 语法
EVAL script numkeys [key [key ...]] [arg [arg ...]]
# 描述
在服务器端执行Lua脚本
# 参数
- key
键名
- script
待执行的 Lua 脚本
- numkeys
后续键名的数量。这些键之后的参数将作为普通参数传递
- arg
通过 Lua 的 ARGV 变量提供给脚本的附加参数
# 示例
> EVAL "return ARGV[1]" 0 hello
"hello"
# EVAL_RO
# 语法
EVAL_RO script numkeys [key [key ...]] [arg [arg ...]]
# 描述
执行一段只读的 Lua 脚本。与 EVAL 命令不同,它不能运行任何会修改数据的命令
# 参数
- key
键名
- script
待执行的 Lua 脚本
- numkeys
后续键名的数量。这些键之后的参数将作为普通参数传递
- arg
通过 Lua 的 ARGV 变量提供给脚本的附加参数
# 示例
> SET mykey "Hello"
OK
> EVAL_RO "return redis.call('GET', KEYS[1])" 1 mykey
"Hello"
> EVAL_RO "return redis.call('DEL', KEYS[1])" 1 mykey
(error) ERR Error running script (call to b0d697da25b13e49157b2c214a4033546aba2104): @user_script:1: @user_script: 1: Write commands are not allowed from read-only scripts.
# EVALSHA
# 语法
EVALSHA sha1 numkeys [key [key ...]] [arg [arg ...]]
# 描述
服务器通过 SCRIPT LOAD 命令来缓存脚本。除此之外,该命令与 EVAL 命令完全相同
# 参数
- key
键名
- numkeys
后续键名的数量。这些键之后的参数将作为普通参数传递
- arg
通过 Lua 的 ARGV 变量提供给脚本的附加参数
- sha1
待执行的 Lua 脚本
# EVALSHA_RO
# 语法
EVALSHA_RO sha1 numkeys [key [key ...]] [arg [arg ...]]
# 描述
这是 EVALSHA 命令的只读版本,无法执行任何会修改数据的命令
# 参数
- key
键名
- numkeys
后续键名的数量。这些键之后的参数将作为普通参数传递
- arg
通过 Lua 的 ARGV 变量提供给脚本的附加参数
- sha1
待执行的 Lua 脚本
# SCRIPT EXISTS
# 语法
SCRIPT EXISTS sha1 [sha1 ...]
# 描述
返回脚本缓存中脚本的存在信息
# 参数
- sha1
待执行的 Lua 脚本
# SCRIPT FLUSH
# 语法
SCRIPT FLUSH [ASYNC | SYNC]
# 描述
清空 Lua 脚本缓存
# 参数
- ASYNC | SYNC
异步(ASYNC)或同步(SYNC)地清空脚本缓存。默认行为由 lazyfree-lazy-user-flush 配置指令决定
# SCRIPT KILL
# 语法
STRIPT KILL
# 描述
终止当前正在执行的 EVAL 脚本,前提是该脚本尚未执行任何写操作
# SCRIPT LOAD
# 语法
SCRIPT LOAD script
# 描述
将脚本加载到脚本缓存中,但不执行它。在指定的命令被加载到脚本缓存后,即可使用带有该脚本正确 SHA1 摘要的 EVALSHA 命令来调用它,这与首次成功执行 EVAL 命令后的效果完全相同
# 参数
- script
需要加载到脚本缓存中的 Lua 脚本。系统会返回该脚本的 SHA1 摘要,以便配合 EVALSHA 命令使用
# SCRIPT
# 语法
SCRIPT
# 描述
这是一个用于脚本管理命令的容器命令
← Connection命令 Server命令 →